﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include "List.h"

//添加通讯录数据
void AddContact(ListNode** con)
{
	Info info;
	printf("请输入姓名：\n");
	scanf("%s", &info.name);
	printf("请输入性别：\n");
	scanf("%s", &info.gender);
	printf("请输入年龄：\n");
	scanf("%d", &info.age);
	printf("请输入联系电话：\n");
	scanf("%s", &info.tel);
	printf("请输入地址：\n");
	scanf("%s", &info.addr);
	LNPushBack(con, info);
	printf("插入成功！\n");
}
//删除通讯录数据
void DelContact(ListNode** con)
{
	char name[20];
	printf("请输入你要删除的联系人:");
	scanf("%s", name);
	ListNode* newnode = FindByName(*con, name);
	if (newnode)
	{
		LNErase(con,newnode);
		printf("联系人删除成功\n");
	}
	else
	{
		printf("联系人删除失败\n");
	}
}
//展⽰通讯录数据
void ShowContact(ListNode** con)
{
	printf("%s %s %s %s %s\n", "姓名", "性别", "年龄", "联系电话", "地址");
		ListNode * cur = *con;
		while (cur)
		{
			printf("%s %s %d %s %-s\n",
				cur->data.name,
				cur->data.gender,
				cur->data.age,
				cur->data.tel,
				cur->data.addr);
			cur = cur->next;
		}
}
//查找通讯录数据
void FindContact(ListNode* con)
{
	char name[20];
	printf("请输入你要查找的联系人");
	scanf("%s", name);
	ListNode* pos = FindByName(con, name);
	if (pos)
	{
		printf("查找成功！\n");
		printf("%s %s %d %s %s\n",
			pos->data.name,
			pos->data.gender,
			pos->data.age,
			pos->data.tel,
			pos->data.addr);
	}
	else
	{
		printf("该联系人不存在\n");
		return;
	}
}
//修改通讯录数据
void ModifyContact(ListNode** con)
{
	char name[20];
	printf("请输入需要修改的联系人:");
	scanf("%s", name);
	ListNode* pos = FindByName(*con, name);
	if (pos == NULL) {
		printf("要查找的⽤⼾不存在，修改失败！\n");
		return;
	}
	printf("请输⼊要修改的姓名：\n");
	scanf("%s", pos->data.name);
	printf("请输⼊要修改的性别：\n");
	scanf("%s", pos->data.gender);
	printf("请输⼊要修改的年龄：\n");
	scanf("%d", &pos->data.age);
	printf("请输⼊要修改的联系电话：\n");
	scanf("%s", pos->data.tel);
	printf("请输⼊要修改的地址：\n");
	scanf("%s", pos->data.addr);

	printf("修改成功！\n");
}
//销毁通讯录数据
void DestroyContact(ListNode** con)
{
	LNDestroy(con);
}

ListNode* FindByName(ListNode* con, char name[])
{
	ListNode* pcur = con;
	while (pcur)
	{
		if (strcmp(pcur->data.name, name) == 0)
		{
			return pcur;
		}
		pcur = pcur->next;
	}
	return NULL;
}